The present invention relates to context information. More specifically, the present invention relates to a system which aggregates and abstracts context information from a plurality of different sources and makes it available to requesting applications.
The mobile business space is a business environment in which employees, contractors or other users communicate with one another using mobile devices, such as cellular telephones, palmtop computers, laptop computers, personal digital assistances (PDAs) etc. In such a business environment, contextual information can be critically important in running a business in an efficient manner, and in a manner which is satisfactory to the customers of the business.
However, building business software and computing solutions to satisfy the needs of this business environment is challenging, expensive, and time consuming. The following scenario illustrates some of the challenges associated with this business environment. Assume that a television repair company conducts business by sending technicians to customer sites to fix problems with the customers' televisions. All customer calls are directed through a central call center. A dispatcher receives a call at the call center from a customer whose television has suddenly stopped displaying color. The customer insists that a technician make a call the same day in order to address the problem. In order to assign an appropriate technician to service the customer's call, the dispatcher would desirably know which technician is most qualified, which one has time in his or her schedule to service the customer's call today, which technician is the most affordable, given the previous constraints, and which technician is the closest to the customer. In other words, the dispatcher would desirably know the context associated with the technicians prior to assigning a technician to the customer's call.
However, all of this information currently comes from a wide variety of different sources, which are not easily accessed and obtained. In order to access this wide variety of different sources, a developer must have knowledge of each of the systems which provide different portions of the desired information, know how to interact with those systems, and know how to obtain the relevant information from those systems. This can be quite difficult since the context data sources can vary widely including, by way of example, user personnel files, calendaring or scheduling programs, geographic location devices, cellular networks, mobile devices, etc.